using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GpsCoordinate")]
	public class GpsCoordinate : MonoClass
	{
		public double Longitude => method_2<double>("Longitude");

		public double Latitude => method_2<double>("Latitude");

		public double Accuracy => method_2<double>("Accuracy");

		public double Timestamp => method_2<double>("Timestamp");

		public GpsCoordinate(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GpsCoordinate(IntPtr address)
			: this(address, "GpsCoordinate")
		{
		}

		public static double HaversineDistance(GpsCoordinate p0, GpsCoordinate p1)
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "GpsCoordinate", "HaversineDistance", new object[2] { p0, p1 });
		}

		public static double DistancePaddedWithAccuracy(GpsCoordinate p0, GpsCoordinate p1)
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "GpsCoordinate", "DistancePaddedWithAccuracy", new object[2] { p0, p1 });
		}

		public new string ToString()
		{
			return method_13("ToString");
		}

		public float Age()
		{
			return method_11<float>("Age", Array.Empty<object>());
		}

		public bool Equals(GpsCoordinate other)
		{
			return method_11<bool>("Equals", new object[1] { other });
		}
	}
}
